package com.ushine.web.component.page;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.annotation.PostConstruct;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @author : yls
 * @Description: 分页返回结果
 * @date : 2020/12/19 12:34
 */
@ApiModel(description = "分页请求结果封装")
@Data
public class PageResultVO<T> implements Serializable {
    /**
     * 当前页码
     */
    @ApiModelProperty("当前页码")
    private Integer pageNum;
    /**
     * 每页数量
     */
    @ApiModelProperty("每页数量")
    private Integer pageSize;
    /**
     * 记录总数
     */
    @ApiModelProperty("记录总数")
    private Long totalSize;
    /**
     * 页码总数
     */
    @ApiModelProperty("页码总数")
    private Long totalPages;
    /**
     * 分页数据
     */
    @ApiModelProperty("分页数据")
    private List<T> content;

    @PostConstruct
    public void init() {
        this.content = new ArrayList<>();
        this.pageNum = 0;
        this.pageSize = 0;
        /*
         * 当前页码 最小为 1
         */
        this.pageNum = Math.max(this.pageNum, 1);
        /*
         * 分页大小最小为 1
         */
        this.pageSize = Math.max(this.pageSize, 1);
    }
}
